zz_

src/isPrime.js

zzmq.dev@gmail.com[dev1]/mathkit[add-isprime-n-function-returns-whether-n] / src / isPrime.js @ b48aa38b Download
Ladder Summary
  • file Add isPrime function with comprehensive tests and export it from the main entry
export function isPrime(n) {
  // Only integer numbers greater than 1 can be prime
  if (typeof n !== "number" || !Number.isInteger(n) || n <= 1) {
    return false;
  }
  // 2 and 3 are prime
  if (n <= 3) {
    return true;
  }
  // Eliminate multiples of 2 and 3 early
  if (n % 2 === 0 || n % 3 === 0) {
    return false;
  }
  // Check remaining potential factors using 6k ± 1 optimization
  for (let i = 5; i * i <= n; i += 6) {
    if (n % i === 0 || n % (i + 2) === 0) {
      return false;
    }
  }
  return true;
}